package com.ygsj.Utils;



import com.ygsj.VehicleInfoEntity;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static android.media.CamcorderProfile.get;

/**
 * Created by Administrator on 2016/10/24.
 *原生解析解析复杂的json可以进行参考;
 */

public class ParJson {//gson与原生的混合使用;思路是把解析好的jsonObject再转回string,供gson使用;(用gson的jsonObject会包冲突)
    public  static  String  getAppVersion(String json) {
        String versionName = null;
        try {
            JSONObject jsonObject = new JSONObject(json);
            versionName = jsonObject.optString("versionName");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return  versionName;
    }


        public  static  String  getLoginData(String json) {
            String retrueString = null;
            try {
                JSONObject jsonObject = new JSONObject(json);
                retrueString = jsonObject.optString("flag");
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return  retrueString;
        }



    public  static  String  getLoginMsg(String json) {
        String retrueString = null;
        try {
            JSONObject jsonObject = new JSONObject(json);
            retrueString = jsonObject.optString("msg");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return  retrueString;
    }


        public static  Map<String,String> getLoginMap(String json) {
                Map<String,String> map = null ;
             try {
                 map = new HashMap<>();
                JSONObject  jsonObject = new  JSONObject (json) ;
                String flag = jsonObject.getString("flag");
                 if (null!=flag&&flag.equals("0")) {
                     JSONArray jsonArray = (JSONArray) jsonObject.get("list");
                     JSONObject jsonObject_ = (JSONObject) jsonArray.get(0);
                    map.put("gsdbztxx_owner",jsonObject_.optString("gsdbztxx_owner"));
                    map.put("gsdbztxx_pass",jsonObject_.optString("gsdbztxx_pass"));
                    map.put("gsdbztxx_base",jsonObject_.optString("gsdbztxx_base"));
                    map.put("mmname",jsonObject_.optString("mmname")) ;
                    map.put("uuname",jsonObject_.optString("uuname"));
                    map.put("confirmPower",jsonObject_.optString("confirmPower"));
                    map.put("goOutPower",jsonObject_.optString("goOutPower"));

                }


            } catch (JSONException e) {
                e.printStackTrace();
            }
            return map;
        }


    public static  Map<String,String> getSignupMap(String json) {
        Map<String,String> map = null ;
        try {
            map = new HashMap<>();
            JSONObject  jsonObject = new  JSONObject (json) ;
            String flag = jsonObject.getString("flag");
            map.put("flag",flag);

            String msg = jsonObject.getString("msg");
            map.put("msg",msg);

            JSONArray jsonArray = jsonObject.getJSONArray("list");
            if (null!=jsonArray&& jsonArray.length() > 0){
                String macName = jsonArray.getJSONObject(0).getString("MacName");
                map.put("mmname",macName);
            }


        } catch (JSONException e) {
            e.printStackTrace();
        }
        return map;
    }

    public static String getCardInfoFlag(String json){
                String result = null;
        try {
            JSONObject jsonObject = new JSONObject(json);
            result = jsonObject.optString("flag");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return result;
    }


    public static String getCardInfoMsg(String json) {
        String result = null;
        try {
            JSONObject jsonObject = new JSONObject(json);
            result = jsonObject.getString("msg");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return result;
    }

    public  static List<VehicleInfoEntity> getCardInfo(String json) {
        List<VehicleInfoEntity> list = null;
        try {
            JSONObject jsonObject = new JSONObject(json);
            String flag = jsonObject.getString("flag");
            if (null!=flag && (flag.equals("6")||flag.equals("7"))) {
                JSONArray jsonArray = (JSONArray) jsonObject.opt("list");
                JSONObject obj1 = (JSONObject) jsonArray.get(0);
               list = new ArrayList<>();
                if (flag.equals("6")&&obj1!= null){
                    list.add(new VehicleInfoEntity("No",obj1.optString("billcode")));
                    list.add(new VehicleInfoEntity("车号",obj1.optString("clch")));
                    list.add(new VehicleInfoEntity("物料",obj1.optString("wlname")));
                    list.add(new VehicleInfoEntity("皮重",obj1.optString("gbpz")));
                    list.add(new VehicleInfoEntity("车型",obj1.optString("cltypename")));
                    list.add(new VehicleInfoEntity("车轴",obj1.optString("clzhou")));
                   // list.add(new VehicleInfoEntity("承运单位",obj1.optString("ClCydwname")));
                    list.add(new VehicleInfoEntity("装货地点",obj1.optString("ddname")));
                    //list.add(new VehicleInfoEntity("入场时间",obj1.optString("rcontime")));
                   // list.add(new VehicleInfoEntity("入场日期",obj1.optString("rcdates")));
                   // list.add(new VehicleInfoEntity("备注",obj1.optString("remark")));
                }else if (flag.equals("7")&&obj1!= null){
                    list.add(new VehicleInfoEntity("提示",obj1.optString("bh")));
                    list.add(new VehicleInfoEntity("No",obj1.optString("billcode")));
                    list.add(new VehicleInfoEntity("车号",obj1.optString("clch")));
                    list.add(new VehicleInfoEntity("物料",obj1.optString("wlname")));
                    list.add(new VehicleInfoEntity("皮重",obj1.optString("gbpz")));
                    list.add(new VehicleInfoEntity("车型",obj1.optString("cltypename")));
                    list.add(new VehicleInfoEntity("车轴",obj1.optString("clzhou")));
                   // list.add(new VehicleInfoEntity("承运单位",obj1.optString("ClCydwname")));
                    list.add(new VehicleInfoEntity("装货地点",obj1.optString("ddname")));
                   // list.add(new VehicleInfoEntity("入场时间",obj1.optString("rcontime")));
                   // list.add(new VehicleInfoEntity("入场日期",obj1.optString("rcdates")));
                   // list.add(new VehicleInfoEntity("备注",obj1.optString("remark")));
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return list;
    }


    public static  String upDateInfo(String json) {
        String result = null;
        try {
            JSONObject jsonObject = new JSONObject(json);
            result = jsonObject.optString("flag");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return result;
    }



    public static  String upDateInfoMsg(String json) {
        String result = null;
        try {
            JSONObject jsonObject = new JSONObject(json);
            result = jsonObject.optString("msg");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return result;
    }

       /* public static RealValue getRealvalue(String json){
              RealValue realValue = new RealValue();
                try {
                        JSONArray jsonArray = new JSONArray(json);
                        JSONObject jsonObject = jsonArray.getJSONObject(0);
                        realValue.setID(jsonObject.getInt("ID"));
                        realValue.setSensorSerial(jsonObject.getString("SensorSerial"));
                        realValue.setSensorName(jsonObject.getString("SensorName"));
                        realValue.setCurveValue(jsonObject.getDouble("CurveValue"));
                        realValue.setUnit(jsonObject.getString("Unit"));
                        realValue.setSensorPlace(jsonObject.getString("SensorPlace"));
                        realValue.setSamplingTime(jsonObject.getString("SamplingTime"));
                        realValue.setZeroState(jsonObject.optString("ZeroState"));
                        realValue.setOneState(jsonObject.optString("OneState"));
                } catch (JSONException e) {
                        e.printStackTrace();
                }
                return realValue;
        }*/




//    public static Map<String,Object> getLogin(String json){//登录注册；
//        Map<String,Object> map = new HashMap();
//        try {
//            JSONObject jsonObject = new JSONObject(json);
//            int returnCode = jsonObject.optInt("returnCode");
//            map.put("returnCode",returnCode);
//            JSONObject content =  jsonObject.optJSONObject("content");
//            if(content != null){
//                String userid = content.optString("id");
//                String username = content.optString("name");
//                String realName = content.optString("realName");
//                String deptName = content.optString("deptName");
//                String picUrl = content.optString("picUrl");
//                map.put("username",username);
//                map.put("realName",realName);
//                map.put("deptName",deptName);
//                map.put("picUrl",picUrl);
//                map.put("id",userid);
//            }
//
//        } catch (JSONException e) {
//            e.printStackTrace();
//        }
//        return map;
//    }
//
//
//        public  static List<Announcements> getAnnouncements(String json){
//            //拿到已读未读信息；
//            List<Announcements> lists = new ArrayList<>();
//            try {
//                JSONObject jsonObject = new JSONObject(json);
//                int code=jsonObject .getInt("returnCode");
//                if(code== GlobalContsts.RESPONSE_CODE_SUCCESS){
//                    JSONArray array = jsonObject.getJSONArray("content");
//                    if( array != null){
//                      lists = JSONParser.parseBookList(array);
//                    }
//                }
//
//            } catch (JSONException e) {
//                e.printStackTrace();
//            }
//
//            return  lists;
//        }
//
//        public  static Information getInfomation(String json){//根据字典拿东西；
//            Information information = new Information();
//
//            try {
//                JSONObject object = new JSONObject(json);
//                JSONObject inforobjet = object.getJSONObject("content");
//                if (object!= null && inforobjet !=null){
//                    information.setFieldID(inforobjet.getString("fieldID"));
//                    information.setFieldName(inforobjet.getString("fieldName"));
//                    information.setFieldValue(inforobjet.getString("fieldValue"));
//                }
//
//
//            } catch (JSONException e) {
//                e.printStackTrace();
//            }
//            return  information;
//
//        }
//
//        public static  List<ContactUrl> getAllContact(String json){//拿到所有联系人；
//            List<ContactUrl> list  = new ArrayList<>();
//            try {
//                JSONArray jsonArray = new JSONArray(json);
//                for (int i = 0; i < jsonArray.length() ; i++) {
//                        JSONObject jsonObject = jsonArray.optJSONObject(i);
//                        JSONArray jsonArray2 = jsonObject.optJSONArray("content");
//
//                    for (int j = 0; j <jsonArray2.length() ; j++) {
//                        ContactUrl contactUrl = new ContactUrl();
//                        JSONObject jsonObjectConent = jsonArray2.optJSONObject(j);
//                        if(jsonObjectConent != null){
//                            contactUrl.setUserid(jsonObjectConent.optString("id"));
//                            contactUrl.setDeptName(jsonObjectConent.optString("deptName"));
//                            contactUrl.setMobilePhone(jsonObjectConent.optString("mobilePhone"));
//                            contactUrl.setRelativeName(jsonObjectConent.optString("name"));
//                            contactUrl.setImageUrl(jsonObjectConent.optString("picUrl"));
//                            list.add(contactUrl);
//                        }
//
//                    }
//                }
//
//
//            } catch (JSONException e) {
//                e.printStackTrace();
//            }
//
//            return list;
//        }
//
//
//
//    public static  List<ContactUrl> getAllRongContact(String json){//拿到所有联系人；
//        List<ContactUrl> list  = new ArrayList<>();
//        try {
//            JSONArray jsonArray = new JSONArray(json);
//            for (int i = 0; i < jsonArray.length() ; i++) {
//                JSONObject jsonObject = jsonArray.optJSONObject(i);
//                JSONArray jsonArray2 = jsonObject.optJSONArray("content");
//
//                for (int j = 0; j <jsonArray2.length() ; j++) {
//                    ContactUrl contactUrl = new ContactUrl();
//                    JSONObject jsonObjectConent = jsonArray2.optJSONObject(j);
//                    if(jsonObjectConent != null){
//                        contactUrl.setUserid(jsonObjectConent.optString("id"));
//                        contactUrl.setDeptName(jsonObjectConent.optString("deptName"));
//                        contactUrl.setMobilePhone(jsonObjectConent.optString("mobilePhone"));
//                        contactUrl.setRelativeName(jsonObjectConent.optString("realName"));
//                        contactUrl.setImageUrl(jsonObjectConent.optString("picUrl"));
//                        list.add(contactUrl);
//                    }
//
//                }
//            }
//
//
//        } catch (JSONException e) {
//            e.printStackTrace();
//        }
//
//        return list;
//    }
//
//
//
//
//
//    public static List<Document> getdocument(String json) {
//        List<Document> documents  = new ArrayList<>();
//        try {
//            JSONArray jsonArray = new JSONArray(json);
//            for (int i = 0; i < jsonArray.length() ; i++) {
//                JSONObject jsonObject = jsonArray.optJSONObject(i);
//                JSONArray jsonArray3 = jsonObject.optJSONArray("content");
//                for (int j = 0; j <jsonArray3.length() ; j++) {
//                    Document document = new Document();
//                    JSONObject jsonObjectConent = jsonArray3.optJSONObject(j);
//                    if(jsonObjectConent != null){
//                        document.setId(jsonObjectConent.getLong("id"));
//                        document.setTitle(jsonObjectConent.getString("title"));
//                        document.setNoticeUrl(jsonObjectConent.getString("noticeUrl"));
//                        document.setTypeName(jsonObjectConent.getString("typeName"));
//                        document.setCreateUserName(jsonObjectConent.getString("createUserName"));
//                        document.setCreateDate(jsonObjectConent.getString("createDate"));
//                        documents.add(document);
//                    }
//
//                }
//            }
//
//
//        } catch (JSONException e) {
//            e.printStackTrace();
//        }
//
//        return documents;
//    }
//    public static List<Watch> getwatch(String json) {
//        List<Watch> watches = new ArrayList<>();
//        try {
//            JSONObject jsonObject = new JSONObject(json);
//            int code = jsonObject.getInt("returnCode");
//            if (code == GlobalContsts.RESPONSE_CODE_SUCCESS) {
//                JSONArray array = jsonObject.getJSONArray("content");
//                if (array != null) {
//                    watches = JSONParser.parseWhatch(array);
//                }
//            }
//
//        } catch (JSONException e) {
//            e.printStackTrace();
//        }
//
//        return watches;
//    }
//
////2-3层解析:比较复杂;
//    public  static  List<DeptAndPerson> getDeptAndPerson(String json){//拿到部门加所有联系人；
//      List<DeptAndPerson> list_DeptAndPerson = new ArrayList<>();
//
//        try {
//            JSONArray jsonArray  =  new JSONArray(json);
//            JSONObject JObj_DeptAndPerson = jsonArray.getJSONObject(0);
//            JSONArray JArray_content = JObj_DeptAndPerson.getJSONArray("content");
//
//
//            for (int i = 0; i < JArray_content.length(); i++) {
//                DeptAndPerson dap = new DeptAndPerson();
//                JSONObject jsonObject = JArray_content.getJSONObject(i);
//                String depname = jsonObject.optString("name");
//                dap.setDept(depname);
//
//
//                JSONArray JArray_Person = jsonObject.optJSONArray("person");
//                List<Person> list_Person = new ArrayList<>();
//                for (int j = 0; j < JArray_Person.length(); j++) {
//                    Person person = new Person();
//                    JSONObject JObj_person = JArray_Person.optJSONObject(j);
//
//                    if(JObj_person != null){
//                        String Pername = JObj_person.optString("name");
//                        String mobilePhone = JObj_person.optString("mobilePhone");
//                        String picUrl = JObj_person.optString("picUrl");
//                        person.setName(Pername);
//                        person.setMobliePhone(mobilePhone);
//                        person.setPicUrl(picUrl);
//                        list_Person.add(person);
//
//                    }
//                }
//                dap.setList(list_Person);//应该在第一层循环
//                list_DeptAndPerson.add(dap);
//            }
//
//        } catch (JSONException e) {
//            e.printStackTrace();
//        }
//
//
//        return  list_DeptAndPerson;
//    }
//
//    //从useid拿username;
//    public static String getDiscuMember(String json){
//        String member = null;
//        try {
//            JSONObject jsonObject = new JSONObject(json);
//             int returnCode = jsonObject.optInt("returnCode");
//            if(returnCode == 10002){
//                JSONObject contentObject = jsonObject.optJSONObject("content");
//                if(contentObject != null){
//                    member = contentObject.optString("fieldValue");
//                }
//            }
//        } catch (JSONException e) {
//            e.printStackTrace();
//        }
//        return member;
//    }





}
